void main() {
  slice(1, 3);
  slice(2, null); // 不推荐写法

  slice2(2, 4);
  slice2(3); // 可选位置参数，需按顺序传递，可省略传参

  // getUserInfo(1000);
  // getUserInfo(1001, age: 20, name: '小明'); // 可选命名参数，需按名字传递，可省略传参
}

// 不推荐写法，end 使用时不能省略参数，且不能设置默认值
void slice(int start, int? end) {
  print('切片操作: 从 $start 到 $end');
}

// 可选位置参数：使用方括号 [] 定义，需按顺序传递，可省略传参，可指定默认值
void slice2(int start, [int? end = 100]) {
  print('切片操作: 从 $start 到 $end');
}

// // 可选命名参数：使用花括号 {} 定义，需按名字传递，可省略传参，可指定默认值
// void getUserInfo(int id, {String? name = '游客', int? age = 18}) {
//   print('用户信息$id: name=$name, age=$age');
// }